// 有另一个CSV文件product_info.csv，包含产品信息，如"Product", "Category"。
// 将这两个数据集通过产品名称进行JOIN操作
// 然后展示每个产品所属的类别及其总销量

import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder()
  .appName("Product Category Sales")
  .master("local")
  .getOrCreate()

import spark.implicits._

// 读取sales_data.csv文件
val salesDF = spark.read
  .option("header", "true")
  .option("inferSchema", "true")
  .csv("sales_data.csv")

// 读取product_info.csv文件
val productInfoDF = spark.read
  .option("header", "true")
  .option("inferSchema", "true")
  .csv("product_info.csv")

// 将产品销量数据与产品信息数据进行JOIN操作
val joinedDF = salesDF.join(productInfoDF, salesDF("Product") === productInfoDF("Product"), "inner")

// 计算每个产品所属的类别及其总销量
val resultDF = joinedDF.groupBy("Category", "Product").agg(sum("Sales").as("Total Sales"))

resultDF.show()